package com.mframe.struts;

import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;


/**
 * struts对基本类型的赋值处理
 * fixed 空字符无法请客赋值不了的问题
 * @author HSWHM
 *
 */
public class Struts2NumberConverter extends StrutsTypeConverter {
	
	
	@Override
	public Object convertFromString(Map context, String[] params, Class toType) {
		String str = params[0];
		Object resutl = null;
		if(BigDecimal.class.equals(toType)){
			if(str==null||("").equals(str.trim())){
				return BigDecimal.ZERO;
			}
			resutl = new BigDecimal(str);
		}else if(Long.class.equals(toType)){//Long 天比较特殊 ID
			if(str==null||("").equals(str.trim())){
				return null;
			}
			resutl = Long.valueOf(str);
		}else if(Integer.class.equals(toType)){
			if(str==null||("").equals(str.trim())){
				return null;
			}
			resutl = Integer.valueOf(str);
		}else if(Double.class.equals(toType)){
			if(str==null||("").equals(str.trim())){
				return null;
			}
			resutl =Double.valueOf(str);
		}
		
		return resutl;
	}

	@Override
	public String convertToString(Map context, Object obj) {
		if(obj==null)return "0";
		return obj.toString();
	}
}